<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js中代码运行方式（流程）</title>
</head>
<body>
<script type="text/javascript">
  //js中代码的运行方式 或者 执行流程
  // 预编译过程：语法检测
  // 执行过程：预编译通过，再从上至下执行代码
  //预编译出现问题时，当前的script标签会停止执行，执行下一个script标签
  //执行代码时出现问题，在错误之前的代码执行，错误之后不执行

  //执行代码前，先进行变量提升，再进行函数预加载
  //如果存在 同名的变量和函数名，始终是后来的覆盖前面的。（后来，是按照以下的顺序：）
  var f1;
  function f1() {
    console.log("f1函数f1");
  }
  console.log(f1);  //输出函数的定义
  function f2() {
    console.log("f2函数f2");
  }
  var f2; //变量提升会放到函数提升的前面
  console.log(f2);  //输出函数的定义

</script>
<script type="text/javascript">
  console.log("script200");
</script>
</body>
</html>